import java.util.*;

public class 两个数组的交集 {
    public int[] intersection(int[] nums1, int[] nums2) {
        int[] hash = new int[1001];
        int n = nums1.length;
        int m = nums2.length;
        Set<Integer> set = new HashSet<>();
        // 对第一个去重
        for (int i = 0; i < n; i++) {
            int cur = nums1[i];
            if (hash[cur] == 0) {
                hash[cur]++;
            }
        }
        for (int i = 0; i < m; i++) {
            int cur = nums2[i];
            // 前一个表中存在, 再放到 set 去重
            if (hash[cur] == 1) {
                set.add(cur);
            }
        }
        // 提取一下元素
        int[] ans = new int[set.size()];
        int cnt = 0;
        for (int x : set) {
            ans[cnt++] = x;
        }
        return ans;
    }
}
